For virtual machines executing on a host computer and connected to a network via the hardware of the host computer, data throughput is limited by the rate of data that the virtual machine can receive, and by the CPU time required to process the data. One way the throughput can be increased is by increasing the data rate, for example by using load balancing to leverage multiple hardware receive queues of the network interface card (NIC) at once. Another way to increase throughput is to reduce the CPU time required to process the received data, for example by combining multiple smaller data messages into larger data messages. However, using either of these solutions may be insufficient for machines that require very high throughput.